<TagAttribute("sound_looping","lsnd","????","????",3,84)>
Public Class SOUND_LOOPING_TAG
Inherits HaloTag
Public Const Extension as String = "sound_looping"
Public Const FourCC as String = "lsnd"
Public Const ParentFourCC as String = "????"
Public Const GrandParentFourCC as String = "????"
Public Const [Version] as Short = 3
Public Const HeaderLength as Integer = 84

''' <summary>
''' 
''' </summary>
<TagField("flags", 1, 20)>
Public flags as Integer

''' <summary>
''' as the sound's input scale changes from zero to one, these modifiers move between the two values specified here. the sound will play using the current scale modifier multiplied by the value specified below. (0 values are ignored.)
''' </summary>
#Region "when scale is ZERO"

''' <summary>
''' 
''' </summary>
<TagField("detail sound period", 1, 0)>
Public detail_sound_period as Single

''' <summary>
''' 
''' </summary>
<TagField("", 8, -1)>
Public padding as Byte()

''' <summary>
''' as the sound's input scale changes from zero to one, these modifiers move between the two values specified here. the sound will play using the current scale modifier multiplied by the value specified below. (0 values are ignored.)
''' </summary>
#End Region
#Region "when scale is ONE"

''' <summary>
''' 
''' </summary>
<TagField("detail sound period", 1, 0)>
Public detail_sound_period_1 as Single

''' <summary>
''' 
''' </summary>
<TagField("", 8, -1)>
Public padding_1 as Byte()

''' <summary>
''' 
''' </summary>
<TagField("", 16, -1)>
Public padding_2 as Byte()

''' <summary>
''' 
''' </summary>
<TagField("continuous damage effect", 16, 10)>
Public continuous_damage_effect as New TAG_REFERENCE

''' <summary>
''' looping_sound_track_block
''' </summary>
<TagField("tracks#tracks play in parallel and loop continuously for the duration of the looping sound.", 160, 11)>
Public tracks as List(Of TRACKS_BLOCK)

''' <summary>
''' looping_sound_detail_block
''' </summary>
<TagField("detail sounds#detail sounds play at random throughout the duration of the looping sound.", 104, 11)>
Public detail_sounds as List(Of DETAIL_SOUNDS_BLOCK)
#End Region
Public Class TRACKS_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("flags", 1, 20)>
Public flags as Integer

''' <summary>
''' 
''' </summary>
<TagField("gain", 1, 0)>
Public gain as Single

''' <summary>
''' 
''' </summary>
<TagField("fade in duration:seconds", 1, 0)>
Public fade_in_duration as Single

''' <summary>
''' 
''' </summary>
<TagField("fade out duration:seconds", 1, 0)>
Public fade_out_duration as Single

''' <summary>
''' 
''' </summary>
<TagField("", 32, -1)>
Public padding as Byte()

''' <summary>
''' 
''' </summary>
<TagField("start", 16, 10)>
Public start as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("loop^", 16, 10)>
Public _loop as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("end", 16, 10)>
Public _end as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("", 32, -1)>
Public padding_1 as Byte()

''' <summary>
''' 
''' </summary>
<TagField("alternate loop", 16, 10)>
Public alternate_loop as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("alternate end", 16, 10)>
Public alternate_end as New TAG_REFERENCE

End Class
Public Class DETAIL_SOUNDS_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("sound^", 16, 10)>
Public sound as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
#Region "frequency of play"

''' <summary>
''' the time between successive playings of this sound will be randomly selected from this range.
''' </summary>
<TagField("random period bounds:seconds", 2, 1)>
Public random_period_bounds as Single()

''' <summary>
''' 
''' </summary>
<TagField("gain", 1, 0)>
Public gain as Single

''' <summary>
''' 
''' </summary>
<TagField("flags", 1, 20)>
Public flags as Integer

''' <summary>
''' 
''' </summary>
<TagField("", 48, -1)>
Public padding as Byte()

''' <summary>
''' if the sound specifie
''' </summary>
#End Region
#Region "random spatialization"

''' <summary>
''' the sound's position along the horizon will be randomly selected from this range.
''' </summary>
<TagField("yaw bounds:degrees", 2, 1)>
Public yaw_bounds as Single()

''' <summary>
''' the sound's position above (positive values) or below (negative values) the horizon will be randomly selected from this range.
''' </summary>
<TagField("pitch bounds:degrees", 2, 1)>
Public pitch_bounds as Single()

''' <summary>
''' the sound's distance (from its spatialized looping sound or from the listener if the looping sound is stereo) will be randomly selected from this range.
''' </summary>
<TagField("distance bounds:world units", 2, 1)>
Public distance_bounds as Single()
#End Region

End Class

End Class
